The invention relates generally to computer systems, and more particularly to the input of data into a computer system.
Small, mobile computing devices, including hand-held and palm-size computers and the like, are becoming important and popular user tools. In general, they are becoming small enough to be extremely convenient while consuming less and less battery power, and at the same time becoming capable of running more powerful applications.
Although such devices continue to shrink in size, size limitations are being reached as a result of human limitations. For example, a full character keyboard that enables user data input cannot be so small that human fingers cannot depress the individual keys thereon. As a result, such devices (e.g., palm-size computers) may eliminate the full size physical keyboard and provide a representation of a keyboard on a touch-sensitive display. To this end, the user enters characters by touching the screen with a stylus at locations corresponding to the displayed keys. Of course, touch-screen devices can also be used simultaneously with devices having physical keyboards, whereby characters can also be entered by manually pressing the keys of the physical keyboard.
Alternatively, the user may wish to input handwritten notes such as sketches and other writing to the device. Applications are known that receive pen movements as digital ink, and the ink is displayed as it is input. The application may store the digitized ink as is, or the application may interpret some of the ink, e.g., it may attempt character recognition, and then store the interpretation as ASCII text or the like.
One of the difficulties in working with such applications is that the user may wish to enter text (e.g., by tapping a keyboard) at certain times, and write digitally (by dragging the pen) at other times. Contemporary devices presently force the user to manually switch between a distinct text entry and a drawing application, or mode, with no intuitive mixing of text and graphics. Moreover, while in each application or mode, the same type of pen stroke may be interpreted different ways. For example, if the user is in a writing application, the dragging of the pen may be used at one time to input ink, and at another time to select a section such as for cutting or pasting purposes. In a text application, the dragging of the pen may select text. In sum, contemporary application and/or mode switching is neither convenient nor intuitive to users, yet heretofore was needed to inform the system of the user""s intentions so as to handle pen events in the manner desired by the user.
Briefly, the present invention provides a method and system for modifying the computer system to receive text input or writing (pen or ink) input based upon the selected or deselected state of an input panel selected by the user. When the system receives a user request to select an input panel, a text entry mode of an application program is enabled in response to the request, including displaying visual feedback indicative of the text entry mode. As data input such as in the form of user pen events are received on the input panel, the pen events are passed to an input method corresponding to the input panel, which converts the user pen events into text. The text is then passed as input data to a program. While in the text entry mode, pen events received in the program""s window are passed to the program to enable editing.
When a request to deselect the input panel is received, the text input state is automatically disabled, including displaying visual feedback indicative of the disabled text input state, and a writing input mode is automatically enabled in the application program. The writing input mode includes displaying visual feedback to the user indicative of the writing input state. When user pen events are received, the pen events are passed as input data to the program. The program interprets the pen events as digital ink, or, if in a user-selected sub-mode of the writing/pen mode, interprets the pen events as an ink editing operation.
Thus, the switching of modes is automatic based on the state of an input panel, which is intuitively selected by the user. Visual feedback may also be provided to remind the user of the current mode. The state of the input panel determines how pen events will be handled, in that if the input panel is in a non-selected state, the pen events are passed as input data to the program. If the input panel is in a selected state, the pen events are passed to an input method of the input panel window, resulting in text being received from the input method. The text is then passed as input data to the program.